package 蓝桥真题;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;

public class 装饰珠 {
       static BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
       final static int N=310,M=10010;
       static int pe[][]=new int[10][10],auxi[]=new int[5],res,n,m;
       static Pair[]hole=new Pair[N];
       static class Pair{
    	      int l,el;
    	      Pair(int l,int el){
    	    	  this.l=l;
    	    	  this.el=el;
    	      }
       }
       static void scan()throws Exception{
    	      String[]ss=null;
    	      for(int i=0;i<6;i++){
    	    	  ss=br.readLine().split(" ");
    	    	  int j=Integer.parseInt(ss[0]);
    	    	  while(j-->0){
    	    		  hole[n++]=new Pair(Integer.parseInt(ss[j+1]),0);
    	    	  }
    	      }
    	      m=Integer.parseInt(br.readLine());
    	      for(int i=0;i<m;i++){
    	    	  ss=br.readLine().split(" ");
    	    	  int l=Integer.parseInt(ss[0]),k=Integer.parseInt(ss[1]);
    	    	  pe[l][0]=Math.max(pe[l][0],k);
    	    	  for(int j=1;j<=k;j++){
    	    		  pe[l][j]=Math.max(pe[l][j],Integer.parseInt(ss[j+1]));
    	    	  }
    	      }
       }
       static void dfs(int d){
    	      if(d==n){
                  int v=0;
    	    	  for(int i=0;i<n;i++){
    	    		  auxi[hole[i].el]++;
    	    	  }
    	    	  for(int i=1;i<=4;i++){
    	    		  if(auxi[i]==0)continue;
    	    		  if(auxi[i]<=pe[i][0]){
    	    			  v=v+pe[i][auxi[i]];
    	    		  }else v+=pe[i][pe[i][0]];
    	    	  }
    	    	  res=Math.max(res, v);
    	    	  Arrays.fill(auxi, 0);
    	    	  return;
    	      }
    	      for(int i=1;i<=hole[d].l;i++){
    	    	  if(pe[i][0]!=0){
    	    		  hole[d].el=i;
        	    	  dfs(d+1);
    	    	  }
    	      }
       }
       public static void main(String[]args)throws Exception{
    	      scan();
    	      dfs(0);
    	      System.out.print(res);
       }
}
